package com.auntvt.timo.jpax.core.quick.enums;

import lombok.Getter;

/**
 * 匹配条件类型
 *
 * @author 小懒虫 <auntvt@163.com>
 * @date 2021/7/31
 * @see CriteriaType 基于条件类型
 */
@Getter
public enum MatcherType {

    /** 等于 */
    EQ(CriteriaType.EQ),

    /** 不等于 */
    NE(CriteriaType.NE),

    /** 大于 */
    GT(CriteriaType.GT),

    /** 大于等于 */
    GE(CriteriaType.GE),

    /** 小于 */
    LT(CriteriaType.LT),

    /** 小于等于 */
    LE(CriteriaType.LE),

    /** 模糊查询 */
    LIKE(CriteriaType.LIKE),

    /** 左模糊查询 */
    LIKE_LEFT(CriteriaType.LIKE_LEFT),

    /** 右模糊查询 */
    LIKE_RIGHT(CriteriaType.LIKE_RIGHT),

    /** 两边模糊查询 */
    LIKE_BOTH(CriteriaType.LIKE_BOTH),

    /** 非，模糊查询 */
    NOT_LIKE(CriteriaType.NOT_LIKE),

    /** 区间查询 */
    BETWEEN(CriteriaType.BETWEEN),

    /** 非，区间查询 */
    NOT_BETWEEN(CriteriaType.NOT_BETWEEN),

    /** 字段为空 */
    IS_NULL(CriteriaType.IS_NULL),

    /** 字段不为空 */
    IS_NOT_NULL(CriteriaType.IS_NOT_NULL),

    /** in 包含的值 */
    IN(CriteriaType.IN),

    /** not in 不包含的值 */
    NOT_IN(CriteriaType.NOT_IN),

    /** 内关联 */
    JOIN_INNER(CriteriaType.JOIN_INNER),

    /** 左关联 */
    JOIN_LEFT(CriteriaType.JOIN_LEFT),

    /** 右关联 */
    JOIN_RIGHT(CriteriaType.JOIN_RIGHT);

    /**
     * 条件类型
     */
    private CriteriaType type;

    MatcherType(CriteriaType type) {
        this.type = type;
    }
}
